@@ -2,6 +2,11 @@ Revision history for Mason
** marks an incompatible change
+2.13 Jul 26, 2011
+
+* Improvements
+ - Add process_output, an easy way to modify all Mason output in a plugin
+
2.12 Jul 3, 2011
* Fixes
@@ -67,7 +67,6 @@ lib/Mason/Test/Plugins/Notify/Compilation.pm
lib/Mason/Test/Plugins/Notify/Component.pm
lib/Mason/Test/Plugins/Notify/Interp.pm
lib/Mason/Test/Plugins/Notify/Request.pm
-lib/Mason/Tidy.pm
lib/Mason/TieHandle.pm
lib/Mason/Types.pm
lib/Mason/Util.pm
@@ -72,6 +72,6 @@
"web" : "https://github.com/jonswar/perl-mason"
}
},
- "version" : "2.12"
+ "version" : "2.13"
}
@@ -45,4 +45,4 @@ requires:
resources:
bugtracker: http://rt.cpan.org/NoAuth/Bugs.html?Dist=Mason
repository: git://github.com/jonswar/perl-mason.git
-version: 2.12
+version: 2.13
@@ -42,7 +42,7 @@ my %WriteMakefileArgs = (
'Scalar::Util' => '1.01',
'Try::Tiny' => '0'
},
- 'VERSION' => '2.12',
+ 'VERSION' => '2.13',
'test' => {
'TESTS' => 't/*.t'
}
@@ -1,6 +1,6 @@
package Mason::App;
BEGIN {
- $Mason::App::VERSION = '2.12';
+ $Mason::App::VERSION = '2.13';
}
use Cwd qw(realpath);
use File::Basename;
@@ -1,6 +1,6 @@
package Mason::CodeCache;
BEGIN {
- $Mason::CodeCache::VERSION = '2.12';
+ $Mason::CodeCache::VERSION = '2.13';
}
use Devel::GlobalDestruction;
use Mason::Moose;
@@ -4,7 +4,7 @@
package Mason::Compilation;
BEGIN {
- $Mason::Compilation::VERSION = '2.12';
+ $Mason::Compilation::VERSION = '2.13';
}
use File::Basename qw(dirname);
use Guard;
@@ -930,7 +930,7 @@ Moose, C<$m> and other required pieces. Empty by default.
=item process_perl_code ($coderef)
This method is called on each distinct piece of Perl code in the component.
-C<$coderef> is a reference to a string containing the code; the method can
+I<$coderef> is a reference to a string containing the code; the method can
modify the code as desired. See L<Mason::Plugin::DollarDot> for a sample usage.
=item unnamed_block_types ()
@@ -1,6 +1,6 @@
package Mason::Component::ClassMeta;
BEGIN {
- $Mason::Component::ClassMeta::VERSION = '2.12';
+ $Mason::Component::ClassMeta::VERSION = '2.13';
}
use File::Basename;
use Mason::Moose;
@@ -1,6 +1,6 @@
package Mason::Component::Import;
BEGIN {
- $Mason::Component::Import::VERSION = '2.12';
+ $Mason::Component::Import::VERSION = '2.13';
}
use strict;
use warnings;
@@ -1,6 +1,6 @@
package Mason::Component::Moose;
BEGIN {
- $Mason::Component::Moose::VERSION = '2.12';
+ $Mason::Component::Moose::VERSION = '2.13';
}
use Moose ();
use MooseX::HasDefaults::RW ();
@@ -1,6 +1,6 @@
package Mason::Component;
BEGIN {
- $Mason::Component::VERSION = '2.12';
+ $Mason::Component::VERSION = '2.13';
}
use Moose; # no Mason::Moose - don't want StrictConstructor
use MooseX::HasDefaults::RO;
@@ -1,6 +1,6 @@
package Mason::DynamicFilter;
BEGIN {
- $Mason::DynamicFilter::VERSION = '2.12';
+ $Mason::DynamicFilter::VERSION = '2.13';
}
use Mason::Moose;
@@ -1,6 +1,6 @@
package Mason::Exceptions;
BEGIN {
- $Mason::Exceptions::VERSION = '2.12';
+ $Mason::Exceptions::VERSION = '2.13';
}
use strict;
use warnings;
@@ -1,6 +1,6 @@
package Mason::Filters::Standard;
BEGIN {
- $Mason::Filters::Standard::VERSION = '2.12';
+ $Mason::Filters::Standard::VERSION = '2.13';
}
use Mason::DynamicFilter;
use Mason::Util;
@@ -1,6 +1,6 @@
package Mason::Interp;
BEGIN {
- $Mason::Interp::VERSION = '2.12';
+ $Mason::Interp::VERSION = '2.13';
}
use Carp;
use Devel::GlobalDestruction;
@@ -1,6 +1,6 @@
package Mason::Moose::Role;
BEGIN {
- $Mason::Moose::Role::VERSION = '2.12';
+ $Mason::Moose::Role::VERSION = '2.13';
}
use Moose::Role ();
use Method::Signatures::Simple ();
@@ -1,6 +1,6 @@
package Mason::Moose;
BEGIN {
- $Mason::Moose::VERSION = '2.12';
+ $Mason::Moose::VERSION = '2.13';
}
use Moose ();
use MooseX::HasDefaults::RO ();
@@ -1,6 +1,6 @@
package Mason::Plugin::Defer::Filters;
BEGIN {
- $Mason::Plugin::Defer::Filters::VERSION = '2.12';
+ $Mason::Plugin::Defer::Filters::VERSION = '2.13';
}
use Mason::PluginRole;
@@ -1,6 +1,6 @@
package Mason::Plugin::Defer::Request;
BEGIN {
- $Mason::Plugin::Defer::Request::VERSION = '2.12';
+ $Mason::Plugin::Defer::Request::VERSION = '2.13';
}
use Mason::PluginRole;
@@ -1,6 +1,6 @@
package Mason::Plugin::Defer;
BEGIN {
- $Mason::Plugin::Defer::VERSION = '2.12';
+ $Mason::Plugin::Defer::VERSION = '2.13';
}
use Moose;
with 'Mason::Plugin';
@@ -1,6 +1,6 @@
package Mason::Plugin::DollarDot::Compilation;
BEGIN {
- $Mason::Plugin::DollarDot::Compilation::VERSION = '2.12';
+ $Mason::Plugin::DollarDot::Compilation::VERSION = '2.13';
}
use Mason::PluginRole;
@@ -1,6 +1,6 @@
package Mason::Plugin::DollarDot;
BEGIN {
- $Mason::Plugin::DollarDot::VERSION = '2.12';
+ $Mason::Plugin::DollarDot::VERSION = '2.13';
}
use Moose;
with 'Mason::Plugin';
@@ -1,6 +1,6 @@
package Mason::Plugin::LvalueAttributes::Interp;
BEGIN {
- $Mason::Plugin::LvalueAttributes::Interp::VERSION = '2.12';
+ $Mason::Plugin::LvalueAttributes::Interp::VERSION = '2.13';
}
use Mason::PluginRole;
@@ -1,6 +1,6 @@
package Mason::Plugin::LvalueAttributes;
BEGIN {
- $Mason::Plugin::LvalueAttributes::VERSION = '2.12';
+ $Mason::Plugin::LvalueAttributes::VERSION = '2.13';
}
use Moose;
with 'Mason::Plugin';
@@ -1,6 +1,6 @@
package Mason::Plugin::TidyObjectFiles::Interp;
BEGIN {
- $Mason::Plugin::TidyObjectFiles::Interp::VERSION = '2.12';
+ $Mason::Plugin::TidyObjectFiles::Interp::VERSION = '2.13';
}
use Mason::PluginRole;
use Perl::Tidy;
@@ -1,6 +1,6 @@
package Mason::Plugin::TidyObjectFiles;
BEGIN {
- $Mason::Plugin::TidyObjectFiles::VERSION = '2.12';
+ $Mason::Plugin::TidyObjectFiles::VERSION = '2.13';
}
use Moose;
with 'Mason::Plugin';
@@ -1,6 +1,6 @@
package Mason::Plugin;
BEGIN {
- $Mason::Plugin::VERSION = '2.12';
+ $Mason::Plugin::VERSION = '2.13';
}
use Mason::PluginRole;
use Mason::Util qw(can_load);
@@ -1,6 +1,6 @@
package Mason::PluginBundle::Default;
BEGIN {
- $Mason::PluginBundle::Default::VERSION = '2.12';
+ $Mason::PluginBundle::Default::VERSION = '2.13';
}
use Mason::PluginRole;
with 'Mason::PluginBundle';
@@ -1,6 +1,6 @@
package Mason::PluginBundle;
BEGIN {
- $Mason::PluginBundle::VERSION = '2.12';
+ $Mason::PluginBundle::VERSION = '2.13';
}
use Mason::PluginRole;
@@ -1,6 +1,6 @@
package Mason::PluginManager;
BEGIN {
- $Mason::PluginManager::VERSION = '2.12';
+ $Mason::PluginManager::VERSION = '2.13';
}
use Carp;
use Log::Any qw($log);
@@ -1,6 +1,6 @@
package Mason::PluginRole;
BEGIN {
- $Mason::PluginRole::VERSION = '2.12';
+ $Mason::PluginRole::VERSION = '2.13';
}
use Moose::Role ();
use Method::Signatures::Simple ();
@@ -1,6 +1,6 @@
package Mason::Request;
BEGIN {
- $Mason::Request::VERSION = '2.12';
+ $Mason::Request::VERSION = '2.13';
}
use Carp;
use File::Basename;
@@ -141,6 +141,7 @@ method filter () {
method flush_buffer () {
my $request_buffer = $self->_request_buffer;
+ $self->process_output($request_buffer);
$self->out_method->( $$request_buffer, $self )
if length $$request_buffer;
$$request_buffer = '';
@@ -243,6 +244,10 @@ method match_request_path ($request_path) {
$self->interp->match_request_path->( $self, $request_path );
}
+method process_output ($outref) {
+ # No-op by default
+}
+
method run () {
# Get path and either hash or hashref of arguments
@@ -775,11 +780,17 @@ Given a top level I<$request_path>, return a corresponding component path or
undef if none was found. Search includes dhandlers and index files. See
L<Mason::Manual::RequestDispatch>.
+=item process_output ($outref)
+
+This method is called on the output buffer right before it is sent to its final
+destination. I<$outref> is a reference to the output string; the method can
+modify it as desired.
+
=for html <a name="run" />
-=item run (request_path, args)
+=item run ($request_path, args)
-Runs the request with I<request_path> and I<args>, where the latter can be
+Runs the request with I<$request_path> and I<args>, where the latter can be
either a hashref or a hash. This is generally called via << $interp->run >>.
=for html <a name="with_tied_print" />
@@ -1,6 +1,6 @@
package Mason::Result;
BEGIN {
- $Mason::Result::VERSION = '2.12';
+ $Mason::Result::VERSION = '2.13';
}
use Mason::Moose;
@@ -1,6 +1,6 @@
package Mason::Test::Class;
BEGIN {
- $Mason::Test::Class::VERSION = '2.12';
+ $Mason::Test::Class::VERSION = '2.13';
}
use Carp;
use File::Basename;
@@ -1,6 +1,6 @@
package Mason::Test::Overrides::Component::StrictMoose;
BEGIN {
- $Mason::Test::Overrides::Component::StrictMoose::VERSION = '2.12';
+ $Mason::Test::Overrides::Component::StrictMoose::VERSION = '2.13';
}
use Moose::Exporter;
use MooseX::StrictConstructor ();
@@ -1,6 +1,6 @@
package Mason::Test::Plugins::Notify::Compilation;
BEGIN {
- $Mason::Test::Plugins::Notify::Compilation::VERSION = '2.12';
+ $Mason::Test::Plugins::Notify::Compilation::VERSION = '2.13';
}
use Mason::PluginRole;
@@ -1,6 +1,6 @@
package Mason::Test::Plugins::Notify::Component;
BEGIN {
- $Mason::Test::Plugins::Notify::Component::VERSION = '2.12';
+ $Mason::Test::Plugins::Notify::Component::VERSION = '2.13';
}
use Mason::PluginRole;
@@ -1,6 +1,6 @@
package Mason::Test::Plugins::Notify::Interp;
BEGIN {
- $Mason::Test::Plugins::Notify::Interp::VERSION = '2.12';
+ $Mason::Test::Plugins::Notify::Interp::VERSION = '2.13';
}
use Mason::PluginRole;
@@ -1,6 +1,6 @@
package Mason::Test::Plugins::Notify::Request;
BEGIN {
- $Mason::Test::Plugins::Notify::Request::VERSION = '2.12';
+ $Mason::Test::Plugins::Notify::Request::VERSION = '2.13';
}
use Mason::PluginRole;
@@ -1,6 +1,6 @@
package Mason::Test::Plugins::Notify;
BEGIN {
- $Mason::Test::Plugins::Notify::VERSION = '2.12';
+ $Mason::Test::Plugins::Notify::VERSION = '2.13';
}
use strict;
use warnings;
@@ -1,34 +0,0 @@
-package Mason::Tidy;
-BEGIN {
- $Mason::Tidy::VERSION = '2.12';
-}
-use File::Slurp;
-use IO::Scalar;
-use Mason::Tidy::Moose;
-use HTML::TreeBuilder;
-
-our $unique_string_count = 0;
-
-# Passed attributes
-has 'unique_string_prefix' => ( default => '__masontidy__' );
-
-#
-# BUILD
-#
-
-method tidy ($source) {
- foreach my $subclass qw(PlainText IsolatedBlock InlinePerl RecursiveBlock) {
- my $class = "Mason::Tidy::Compilation::$subclass";
- Class::MOP::load_class($class);
- my $c = $class->new( source => $source, tidy_object => $self );
- $c->transform;
- $source = $c->source;
- }
- return $source;
-}
-
-method unique_string () {
- return join( "_", $self->unique_string_prefix, $unique_string_count++ );
-}
-
-1;
@@ -1,6 +1,6 @@
package Mason::TieHandle;
BEGIN {
- $Mason::TieHandle::VERSION = '2.12';
+ $Mason::TieHandle::VERSION = '2.13';
}
use strict;
use warnings;
@@ -1,6 +1,6 @@
package Mason::Types;
BEGIN {
- $Mason::Types::VERSION = '2.12';
+ $Mason::Types::VERSION = '2.13';
}
use Moose::Util::TypeConstraints;
use strict;
@@ -1,6 +1,6 @@
package Mason::Util;
BEGIN {
- $Mason::Util::VERSION = '2.12';
+ $Mason::Util::VERSION = '2.13';
}
use Carp;
use Class::MOP;
@@ -1,6 +1,6 @@
package Mason::t::Autobase;
BEGIN {
- $Mason::t::Autobase::VERSION = '2.12';
+ $Mason::t::Autobase::VERSION = '2.13';
}
use Test::Class::Most parent => 'Mason::Test::Class';
@@ -1,6 +1,6 @@
package Mason::t::Cache;
BEGIN {
- $Mason::t::Cache::VERSION = '2.12';
+ $Mason::t::Cache::VERSION = '2.13';
}
use Test::Class::Most parent => 'Mason::Test::Class';
@@ -1,6 +1,6 @@
package Mason::t::CompCalls;
BEGIN {
- $Mason::t::CompCalls::VERSION = '2.12';
+ $Mason::t::CompCalls::VERSION = '2.13';
}
use Test::Class::Most parent => 'Mason::Test::Class';
@@ -1,6 +1,6 @@
package Mason::t::Compilation;
BEGIN {
- $Mason::t::Compilation::VERSION = '2.12';
+ $Mason::t::Compilation::VERSION = '2.13';
}
use Test::Class::Most parent => 'Mason::Test::Class';
@@ -1,6 +1,6 @@
package Mason::t::ComponentMeta;
BEGIN {
- $Mason::t::ComponentMeta::VERSION = '2.12';
+ $Mason::t::ComponentMeta::VERSION = '2.13';
}
use Test::Class::Most parent => 'Mason::Test::Class';
@@ -1,6 +1,6 @@
package Mason::t::Defer;
BEGIN {
- $Mason::t::Defer::VERSION = '2.12';
+ $Mason::t::Defer::VERSION = '2.13';
}
use Test::More;
use strict;
@@ -1,6 +1,6 @@
package Mason::t::DollarDot;
BEGIN {
- $Mason::t::DollarDot::VERSION = '2.12';
+ $Mason::t::DollarDot::VERSION = '2.13';
}
use Test::Class::Most parent => 'Mason::Test::Class';
@@ -1,6 +1,6 @@
package Mason::t::Errors;
BEGIN {
- $Mason::t::Errors::VERSION = '2.12';
+ $Mason::t::Errors::VERSION = '2.13';
}
use Test::Class::Most parent => 'Mason::Test::Class';
@@ -1,6 +1,6 @@
package Mason::t::Filters;
BEGIN {
- $Mason::t::Filters::VERSION = '2.12';
+ $Mason::t::Filters::VERSION = '2.13';
}
use Test::Class::Most parent => 'Mason::Test::Class';
@@ -1,6 +1,6 @@
package Mason::t::Globals;
BEGIN {
- $Mason::t::Globals::VERSION = '2.12';
+ $Mason::t::Globals::VERSION = '2.13';
}
use Test::Class::Most parent => 'Mason::Test::Class';
@@ -1,6 +1,6 @@
package Mason::t::HTMLFilters;
BEGIN {
- $Mason::t::HTMLFilters::VERSION = '2.12';
+ $Mason::t::HTMLFilters::VERSION = '2.13';
}
use Test::Class::Most parent => 'Mason::Test::Class';
@@ -1,13 +1,13 @@
package Mason::t::Interp;
BEGIN {
- $Mason::t::Interp::VERSION = '2.12';
+ $Mason::t::Interp::VERSION = '2.13';
}
use Test::Class::Most parent => 'Mason::Test::Class';
use Capture::Tiny qw(capture);
{ package MyInterp;
BEGIN {
- $MyInterp::VERSION = '2.12';
+ $MyInterp::VERSION = '2.13';
} use Moose; extends 'Mason::Interp' }
sub test_base_interp_class : Tests {
@@ -1,6 +1,6 @@
package Mason::t::LvalueAttributes;
BEGIN {
- $Mason::t::LvalueAttributes::VERSION = '2.12';
+ $Mason::t::LvalueAttributes::VERSION = '2.13';
}
use Test::Class::Most parent => 'Mason::Test::Class';
@@ -1,6 +1,6 @@
package Mason::t::Plugins;
BEGIN {
- $Mason::t::Plugins::VERSION = '2.12';
+ $Mason::t::Plugins::VERSION = '2.13';
}
use Test::Class::Most parent => 'Mason::Test::Class';
use Capture::Tiny qw(capture_merged);
@@ -41,28 +41,28 @@ sub test_strict_plugin : Tests {
{ package Mason::Test::Plugins::A;
BEGIN {
- $Mason::Test::Plugins::A::VERSION = '2.12';
+ $Mason::Test::Plugins::A::VERSION = '2.13';
} use Moose; with 'Mason::Plugin'; }
{ package Mason::Plugin::B;
BEGIN {
- $Mason::Plugin::B::VERSION = '2.12';
+ $Mason::Plugin::B::VERSION = '2.13';
} use Moose; with 'Mason::Plugin'; }
{ package Mason::Plugin::C;
BEGIN {
- $Mason::Plugin::C::VERSION = '2.12';
+ $Mason::Plugin::C::VERSION = '2.13';
} use Moose; with 'Mason::Plugin'; }
{ package Mason::Plugin::D;
BEGIN {
- $Mason::Plugin::D::VERSION = '2.12';
+ $Mason::Plugin::D::VERSION = '2.13';
} use Moose; with 'Mason::Plugin'; }
{ package Mason::Plugin::E;
BEGIN {
- $Mason::Plugin::E::VERSION = '2.12';
+ $Mason::Plugin::E::VERSION = '2.13';
} use Moose; with 'Mason::Plugin'; }
{
package Mason::PluginBundle::F;
BEGIN {
- $Mason::PluginBundle::F::VERSION = '2.12';
+ $Mason::PluginBundle::F::VERSION = '2.13';
}
use Moose;
with 'Mason::PluginBundle';
@@ -71,7 +71,7 @@ BEGIN {
{
package Mason::Test::PluginBundle::G;
BEGIN {
- $Mason::Test::PluginBundle::G::VERSION = '2.12';
+ $Mason::Test::PluginBundle::G::VERSION = '2.13';
}
use Moose;
with 'Mason::PluginBundle';
@@ -80,7 +80,7 @@ BEGIN {
{
package Mason::Plugin::H;
BEGIN {
- $Mason::Plugin::H::VERSION = '2.12';
+ $Mason::Plugin::H::VERSION = '2.13';
}
use Moose;
with 'Mason::Plugin';
@@ -89,7 +89,7 @@ BEGIN {
{
package Mason::PluginBundle::I;
BEGIN {
- $Mason::PluginBundle::I::VERSION = '2.12';
+ $Mason::PluginBundle::I::VERSION = '2.13';
}
use Moose;
with 'Mason::PluginBundle';
@@ -102,7 +102,7 @@ BEGIN {
{
package Mason::PluginBundle::J;
BEGIN {
- $Mason::PluginBundle::J::VERSION = '2.12';
+ $Mason::PluginBundle::J::VERSION = '2.13';
}
use Moose;
with 'Mason::PluginBundle';
@@ -140,4 +140,27 @@ sub test_plugin_specs : Tests {
throws_ok { $test->( ['Y'] ) } qr/could not load 'Mason::Plugin::Y'/;
}
+{ package Mason::Test::Plugins::Upper;
+BEGIN {
+ $Mason::Test::Plugins::Upper::VERSION = '2.13';
+} use Moose; with 'Mason::Plugin' }
+{
+ package Mason::Test::Plugins::Upper::Request;
+BEGIN {
+ $Mason::Test::Plugins::Upper::Request::VERSION = '2.13';
+}
+ use Mason::PluginRole;
+ after 'process_output' => sub {
+ my ( $self, $bufref ) = @_;
+ $$bufref = uc($$bufref);
+ };
+}
+
+sub test_process_output_plugin : Tests {
+ my $self = shift;
+
+ $self->setup_interp( plugins => ['+Mason::Test::Plugins::Upper'] );
+ $self->test_comp( src => 'Hello', expect => 'HELLO' );
+}
+
1;
@@ -1,6 +1,6 @@
package Mason::t::Reload;
BEGIN {
- $Mason::t::Reload::VERSION = '2.12';
+ $Mason::t::Reload::VERSION = '2.13';
}
use Test::Class::Most parent => 'Mason::Test::Class';
@@ -1,6 +1,6 @@
package Mason::t::Request;
BEGIN {
- $Mason::t::Request::VERSION = '2.12';
+ $Mason::t::Request::VERSION = '2.13';
}
use Test::Class::Most parent => 'Mason::Test::Class';
use Log::Any::Test;
@@ -1,6 +1,6 @@
package Mason::t::ResolveURI;
BEGIN {
- $Mason::t::ResolveURI::VERSION = '2.12';
+ $Mason::t::ResolveURI::VERSION = '2.13';
}
use Test::Class::Most parent => 'Mason::Test::Class';
@@ -1,6 +1,6 @@
package Mason::t::Sanity;
BEGIN {
- $Mason::t::Sanity::VERSION = '2.12';
+ $Mason::t::Sanity::VERSION = '2.13';
}
use Test::Class::Most parent => 'Mason::Test::Class';
@@ -1,6 +1,6 @@
package Mason::t::Sections;
BEGIN {
- $Mason::t::Sections::VERSION = '2.12';
+ $Mason::t::Sections::VERSION = '2.13';
}
use Test::Class::Most parent => 'Mason::Test::Class';
@@ -1,6 +1,6 @@
package Mason::t::Skel;
BEGIN {
- $Mason::t::Skel::VERSION = '2.12';
+ $Mason::t::Skel::VERSION = '2.13';
}
use Test::Class::Most parent => 'Mason::Test::Class';
@@ -1,6 +1,6 @@
package Mason::t::StaticSource;
BEGIN {
- $Mason::t::StaticSource::VERSION = '2.12';
+ $Mason::t::StaticSource::VERSION = '2.13';
}
use Test::Class::Most parent => 'Mason::Test::Class';
use Mason::Util qw(write_file touch_file);
@@ -1,6 +1,6 @@
package Mason::t::Syntax;
BEGIN {
- $Mason::t::Syntax::VERSION = '2.12';
+ $Mason::t::Syntax::VERSION = '2.13';
}
use Test::Class::Most parent => 'Mason::Test::Class';
@@ -1,6 +1,6 @@
package Mason::t::Util;
BEGIN {
- $Mason::t::Util::VERSION = '2.12';
+ $Mason::t::Util::VERSION = '2.13';
}
use Test::Class::Most parent => 'Mason::Test::Class';
use Mason::Util qw(combine_similar_paths);
@@ -1,6 +1,6 @@
package Mason;
BEGIN {
- $Mason::VERSION = '2.12';
+ $Mason::VERSION = '2.13';
}
use Mason::Interp;
use Mason::PluginManager;